The Randomised Evaluation of COVID-19 Therapy (RECOVERY) is a platform trial that tested several treatments for COVID-19 since the beginning of the pandemics in 2020. Preliminary results on the anti-inflammatory drug tocilizumab were published on medRxiv on February 11, 2021
The RECOVERY was a large, open-label randomized controlled trial that assessed 28-day mortality as the primary outcome in hospitalized patients with COVID-19 using a frequentist statistical approach. Secondary outcomes were: discharge from hospital within 28 days in all patients and risk of invasive mechanical ventilation (IVM)/death among those not receiving IVM at baseline.
Compared to the control group, there was a reduction in overall mortality in the tocilizumab group (rate ratio of 0.86; 95% confidence interval 0.77-0.96). Patients receiving tocilizumab were also more likely of being discharged alive within 28 days (rate ratio of 1.22; 95%CI 1.12-1.34). Lastly, among those not receiving IVM at baseline, patients allocated to tocilizumab were less likely to reach the composite endpoint of IVM or death (risk ratio 0.85; 95% CI 0.78-0.93).
These results are of great public health interest. To date, there are only a few effective treatments for COVID-19 infection, such as corticosteroids. Interestingly, in the RECOVERY trial on tocilizumab, 82% of patients in both treatment arms were using corticosteroids. Therefore, the effects mentioned above are complementary to the already established beneficial effect of corticosteroids.
Subgroup analyses are key for clinical research. It allows one to either further explore or confirm hypotheses based on the data.
In the RECOVERY trial, the authors reported several pre-specified subgroups analyses. Two clusters of subgroups are especially clinically important: respiratory support and days since symptom onset.
For COVID-19 infection, duration of disease and use of oxygen are significant to stratify risk of patients. Respiratory support should be interpreted as a direct proxy for severity of disease. Patients on invasive mechanical ventilation are naturally at greater risk of death than patients on simple oxygen only. Also, previous research has shown that dyspnea most commonly develops after a median of 5-7 days since the onset of symptoms.
Here are the results of the RECOVERY trial on the outcomes and subgroups mentioned above:
Adapted from the RECOVERY trial: Effect of allocation to tocilizumab on 28−day mortality by baseline characteristics
Adapted from the RECOVERY trial: Effect of allocation to tocilizumab on hospital discharge by baseline characteristics
Adapted from the RECOVERY trial: Effect of allocation to tocilizumab on invasive mechanical ventilation or death in those not on invasive mechanical ventilation at randomisation, by baseline characteristics
Death, the risk of receiving invasive mechanical ventilation, and time to hospital discharge are crucial for both the patient and society’s benefits. Overall, tocilizumab seems to be effective for these outcomes. In addition to usual care, this medication could save several lives (NNT = 25 for mortality) of hospitalized patients with COVID-19.
However, tocilizumab may have different effects in each subgroup. It has been postulated that severity of COVID-19 disease is closely related to the degree of inflammation and length of disease. Thus, one could expect different results between the subgroups mentioned above. Yet, the subgroup results of this trial are not consistent between outcomes. Due to this difference, it becomes questionable whether these results are accurate enough to aid in specifying clinical decisions to subgroups of patients.
Subgroup analyses are key for estimating heterogeneity of tocilizumab’s effect on different groups of patients. It is clinically and economically important to determine if there is sufficient discrepancy to ascertain different treatments for specific subgroups.
Subgroup analyses pose several limitations. Their intrinsic low statistical power increases both type 2 error, leading to false-negatives results, and type 1 error risk, inflating treatment effect. If these analyses are not appropriately interpreted, it could generate misleading conclusions about the effect of tocilizumab in specific subgroups.
It is of utmost importance to define if results from a clinical trial are clinically meaningful. Of note, P-values only provide information about the data’s incompatibility to the null hypothesis (effect equals zero). It is impossible to infer whether the true effect size is large or what is the probability of the alternative hypothesis (effect different from zero) of being true based on P-values. Also, the use of a frequentist approach to subgroup analysis can lead to multiplicity issues.
Confidence intervals (CI) can improve the interpretation of results beyond P-values. However, they are also easily misinterpreted. CIs contain a range of parameter values that are more compatible with the data than are values outside the interval. A single CI does not provide any information on what is the true effect. CIs can only inform the compatibility of data from this trial to an arbitrary threshold (e.g., 95%). It does not inform what is the probability of a range of effects (eg, RR < 1, 0.9, 0.8 etc) to be true. All of this information would be of great interest to clinicians.
Thus, we believe that Bayesian analysis can improve the interpretation of these results for clinicians.
The Bayesian statistical framework relies on defining priors that capture our belief on the true effect. These, combined with new data (likelihood), generate a posterior probability (PP). PP can be described with credible intervals, which, in contrast to confidence intervals, inform the probability of an effect given the prior and likelihood. We can also perform multiple looks at the PP without worrying about multiplicity issues.
We will perform a post hoc reanalysis of the RECOVERY trial on tocilizumab.
We have decided to define the parameters of our priors for each subgroup on two fronts:
The non-informative prior is equal in every subgroup. Thus, we will not report any analysis on this prior in this file.
Because we will also create an evidence-based prior, we have decided to define the parameters of our other priors based on data from similar drugs to tocilizumab on COVID-19. Tocilizumab is an anti-inflammatory drug commonly used in patients with rheumatoid arthritis. It is a monoclonal antibody to the receptor for IL-6, a pro-inflammatory cytokine.
Corticosteroid is a classic anti-inflammatory drug class with a plethora of effects on the inflammatory cascade, such as in the IL-6 pathway. Previous research has shown that dexamethasone and methylprednisolone is effective in patients with COVID-19. One of the most notable clinical trials that has shown this effect was the RECOVERY trial on dexamethasone.
A total of 2104 patients were assigned to receive dexamethasone and 4321 to receive usual care. Similar to the trial on tocilizumab, the primary outcome was 28-days mortality. Overall, the pooled age-adjusted rate ratio was 0.83 (95% confidence interval, 0.75 to 0.93). Secondary outcomes were: discharge from hospital within 28 days in all patients and risk of invasive mechanical ventilation (IVM)/death among those not receiving IVM at baseline.
Next, we will discuss a few pre-specified subgroup analyses of this trial.
Interestingly, when analyzing by respiratory support subgroups, there is a clear differential effect of dexamethasone on mortality. Patients on invasive mechanical ventilation benefit the most, while patients not on oxygen tends to get harmed by the therapy.
Adapted from the RECOVERY trial: Effect of dexamethasone on 28-day mortality, according to respiratory support at randomization
The time point in which patients start the treatment also plays a vital role in the effectiveness of this drug. There were ** fewer deaths** in patients treated before ≤7 days since symptom onset.
Adapted from the RECOVERY trial: Effect of allocation to dexamethasone on 28−day mortality by other pre−specified baseline characteristics
Again, this data suggests there might be a difference between subgroups.
Adapted from the RECOVERY trial: Effect of allocation to dexamethasone on discharge from hospital alive within 28 days by other pre−specified baseline characteristics
Notably, there is a clear difference in the days since symptom onset subgroups.
Adapted from the RECOVERY trial: Effect of allocation to dexamethasone on invasive mechanical ventilation or death in those not on invasive mechanical ventilation at randomisation, by baseline characteristics
We have decided to choose the parameters of our belief strengths in light of the data on dexamethasone
We will discuss our priors for the following outcomes in the tocilizumab trial:
28-days mortality
Discharge from the hospital within 28 days
Invasive mechanical ventilation (IMV) or death in patients not receiving IMV at baseline
Regarding respiratory support, there are different subgroups between the dexamethasone and tocilizumab trial. There is not a no oxygen received subgroup in the tocilizumab trial. Lastly, the oxygen only subgroup in the dexamethasone trial is equal to both no ventilator support and non-invasive ventilation in the tocilizumab trial.
Thus, we ignored the no oxygen received subgroup data and interpreted the oxygen only as analog to both tocilizumab subgroups mentioned above.
We will report the absolute risk reduction (ARR) of tocilizumab minus the control group for each prior. An ARR smaller than zero means tocilizumab is better for the mortality outcome.
There are three subgroups:
No ventilator support
Non-invasive ventilation
Invasive mechanical ventilation
We have decided that the parameters of priors should be the same for all three subgroups.
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.15 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Moderate",
"Weak"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(< 0)" = c(pnorm(0,mean_skeptical_prior,sd_skeptical_prior),
pnorm(0,mean_optimistic_prior,sd_optimistic_prior),
pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)),
"Pr(< -0.05)" = c(round(pnorm(-0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.05,mean_pessimistic_prior,sd_pessimistic_prior,2))),
"Pr(< -0.10)" = c(round(pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.1,mean_pessimistic_prior,sd_pessimistic_prior,2)))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(< 0) | Pr(< -0.05) | Pr(< -0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.50 | 0.16 | 0.02 |
| Optimistic | -0.05 | Moderate | 0.05 | 0.85 | 0.50 | 0.15 |
| Pessimistic | 0.05 | Weak | 0.10 | 0.30 | 0.00 | 0.00 |
There are two subgroups:
In this case, the parameters of priors will be different for each subgroup, as follows:
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.0383 # Prior SD
sum = round((1-pnorm(0.075,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.075,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.075 & < -0.075) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Weak",
"Weak"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(< 0)" = c(round(pnorm(0,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(0,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(< -0.05)" = c(round(pnorm(-0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.05,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(< -0.10)" = c(round(pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(< 0) | Pr(< -0.05) | Pr(< -0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.04 | 0.5 | 0.10 | 0.00 |
| Optimistic | -0.05 | Weak | 0.10 | 0.7 | 0.50 | 0.30 |
| Pessimistic | 0.05 | Weak | 0.10 | 0.3 | 0.15 | 0.06 |
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.15 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Moderate",
"Weak"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(< 0)" = c(round(pnorm(0,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(0,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(< -0.05)" = c(round(pnorm(-0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.05,mean_pessimistic_prior,sd_pessimistic_prior,2))),
"Pr(< -0.10)" = c(round(pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(< 0) | Pr(< -0.05) | Pr(< -0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.50 | 0.16 | 0.02 |
| Optimistic | -0.05 | Moderate | 0.05 | 0.85 | 0.50 | 0.15 |
| Pessimistic | 0.05 | Weak | 0.10 | 0.30 | 0.00 | 0.06 |
Now, we will discuss the priors for the outcome of discharge from the hospital within 28 days. Again, we will use the dexamethasone trial results as a reference for the parameters of prior beliefs and belief strengths.
We decided that the priors should match the ones we used for these subgroups regarding the mortality outcome, except for the invasive mechanical ventilation group. Of note, for the discharge from hospital outcome, an absolute risk difference (ARD) greater than 0 means tocilizumab is better.
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.15 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARD"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Moderate",
"Weak"),
"Assumed SD of ARD" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(> 0)" = c((1 - pnorm(0,mean_skeptical_prior,sd_skeptical_prior)),
(1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)),
(1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior))),
"Pr(> 0.05)" = c(round(1 - pnorm(0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.05,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(> 0.10)" = c(round(1 - pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARD | Belief Strength | Assumed SD of ARD | Pr(> 0) | Pr(> 0.05) | Pr(> 0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.50 | 0.16 | 0.02 |
| Optimistic | 0.05 | Moderate | 0.05 | 0.85 | 0.50 | 0.15 |
| Pessimistic | -0.05 | Weak | 0.10 | 0.30 | 0.15 | 0.06 |
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARD"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Weak",
"Weak"),
"Assumed SD of ARD" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(> 0)" = c((1 - pnorm(0,mean_skeptical_prior,sd_skeptical_prior)),
(1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)),
(1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior))),
"Pr(> 0.05)" = c(round(1 - pnorm(0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.05,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(> 0.10)" = c(round(1 - pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARD | Belief Strength | Assumed SD of ARD | Pr(> 0) | Pr(> 0.05) | Pr(> 0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.5 | 0.16 | 0.02 |
| Optimistic | 0.05 | Weak | 0.10 | 0.7 | 0.50 | 0.30 |
| Pessimistic | -0.05 | Weak | 0.10 | 0.3 | 0.15 | 0.06 |
The risk difference between the ≤ 7 days and > 7 days subgroup in the dexamethasone trial is small. Yet, we judged that the priors for the tocilizumab trial should be different in each subgroup.
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Weak",
"Weak"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(> 0)" = c((1 - pnorm(0,mean_skeptical_prior,sd_skeptical_prior)),
(1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)),
(1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior))),
"Pr(> 0.05)" = c(round(1 - pnorm(0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.05,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(> 0.10)" = c(round(1 - pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(> 0) | Pr(> 0.05) | Pr(> 0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.5 | 0.16 | 0.02 |
| Optimistic | 0.05 | Weak | 0.10 | 0.7 | 0.50 | 0.30 |
| Pessimistic | -0.05 | Weak | 0.10 | 0.3 | 0.15 | 0.06 |
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.15 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Weak",
"Weak"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(> 0)" = c((1 - pnorm(0,mean_skeptical_prior,sd_skeptical_prior)),
(1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)),
(1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior))),
"Pr(> 0.05)" = c(round(1 - pnorm(0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.05,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(> 0.10)" = c(round(1 - pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(1 - pnorm(0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(1 - pnorm(0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(> 0) | Pr(> 0.05) | Pr(> 0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.50 | 0.16 | 0.02 |
| Optimistic | 0.05 | Weak | 0.05 | 0.85 | 0.50 | 0.15 |
| Pessimistic | -0.05 | Weak | 0.10 | 0.30 | 0.15 | 0.06 |
Here, we will only consider data from the oxygen only subgroup of the dexamethasone trial since this is the one that matches the tocilizumab trial. Of note, for this outcome, an ARR smaller than 0 means tocilizumab is better.
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.15 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Moderate",
"Weak"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(< 0)" = c(pnorm(0,mean_skeptical_prior,sd_skeptical_prior),
pnorm(0,mean_optimistic_prior,sd_optimistic_prior),
pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)),
"Pr(< -0.05)" = c(round(pnorm(-0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.05,mean_pessimistic_prior,sd_pessimistic_prior,2))),
"Pr(< -0.10)" = c(round(pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.1,mean_pessimistic_prior,sd_pessimistic_prior,2)))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(< 0) | Pr(< -0.05) | Pr(< -0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.50 | 0.16 | 0.02 |
| Optimistic | -0.05 | Moderate | 0.05 | 0.85 | 0.50 | 0.15 |
| Pessimistic | 0.05 | Weak | 0.10 | 0.30 | 0.00 | 0.00 |
For these subgroups, we judged it would be reasonable to choose different priors’ parameters for each subgroup.
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.0383 # Prior SD
sum = round((1-pnorm(0.075,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.075,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.075 & < -0.075) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.15 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Strong",
"Weak",
"Moderate"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(< 0)" = c(round(pnorm(0,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(0,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(< -0.05)" = c(round(pnorm(-0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.05,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(< -0.10)" = c(round(pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(< 0) | Pr(< -0.05) | Pr(< -0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Strong | 0.04 | 0.50 | 0.10 | 0.0 |
| Optimistic | -0.05 | Weak | 0.10 | 0.70 | 0.50 | 0.3 |
| Pessimistic | 0.05 | Moderate | 0.05 | 0.15 | 0.02 | 0.0 |
#Skeptical prior parameters
mean_skeptical_prior = 0 # Prior ARR mean
sd_skeptical_prior = 0.051 # Prior SD
sum = round((1-pnorm(0.1,mean_skeptical_prior,sd_skeptical_prior)) +
pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2)
skeptical_text = paste0(" Pr(> 0.1 & < -0.1) = ", sum)
# Check if output matches target_prob
#skeptical_text#Optimistic prior parameters
prob_harm_optimistic = T # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_optimistic_prior = -0.05 # Prior ARR mean
target_prob = 0.15 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_optimistic_prior = abs(mean_optimistic_prior/qnorm(target_prob)) # Prior SD
optimistic_text = ifelse(prob_harm_optimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_optimistic_prior,sd_optimistic_prior)), 2)))
# Check if output matches target_prob
#optimistic_text#Pessimistic prior parameters
prob_harm_pessimistic = F # Set TRUE to calculate Pr(ARR > 0) / Set FALSE to calculate Pr(ARR < 0)
mean_pessimistic_prior = 0.05 # Prior ARR mean
target_prob = 0.30 # Probability chose accordingly to belief strength (weak, moderate or strong) / Check Zampieri et al. 2020
sd_pessimistic_prior = abs(mean_pessimistic_prior/qnorm(target_prob)) # Prior SD
pessimistic_text = ifelse(prob_harm_pessimistic,
paste0(" Pr(> 0) = ", round((1 - pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)),
paste0(" Pr(< 0) = ", round((pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior)), 2)))
# Check if output matches target_prob
#pessimistic_textpriors = tibble(
"Prior Belief" = c("Skeptical",
"Optimistic",
"Pessimistic"),
"Assumed Mean ARR"= c(mean_skeptical_prior,
mean_optimistic_prior,
mean_pessimistic_prior),
"Belief Strength" = c("Moderate",
"Moderate",
"Weak"),
"Assumed SD of ARR" = c(round(sd_skeptical_prior, 2),
round(sd_optimistic_prior, 2),
round(sd_pessimistic_prior,2)),
"Pr(< 0)" = c(round(pnorm(0,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(0,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(0,mean_pessimistic_prior,sd_pessimistic_prior),2)),
"Pr(< -0.05)" = c(round(pnorm(-0.05,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.05,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.05,mean_pessimistic_prior,sd_pessimistic_prior,2))),
"Pr(< -0.10)" = c(round(pnorm(-0.1,mean_skeptical_prior,sd_skeptical_prior),2),
round(pnorm(-0.1,mean_optimistic_prior,sd_optimistic_prior),2),
round(pnorm(-0.1,mean_pessimistic_prior,sd_pessimistic_prior),2))
)
priors %>%
kbl(align = 'c') %>%
add_header_above(c(" " = 4, "Probability of Treatment Effect" = 3)) %>%
kable_styling(bootstrap_options = "striped", full_width = F)| Prior Belief | Assumed Mean ARR | Belief Strength | Assumed SD of ARR | Pr(< 0) | Pr(< -0.05) | Pr(< -0.10) |
|---|---|---|---|---|---|---|
| Skeptical | 0.00 | Moderate | 0.05 | 0.50 | 0.16 | 0.02 |
| Optimistic | -0.05 | Moderate | 0.05 | 0.85 | 0.50 | 0.15 |
| Pessimistic | 0.05 | Weak | 0.10 | 0.30 | 0.00 | 0.06 |